﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Negocio.Generico;
using System.Collections.Generic;
using System.Data.Linq;
using Negocio.Osd;
using Negocio.View;

namespace PresentacionWeb
{
    public partial class NuevoRegistro : Page
    {

        #region Variables

        /// <summary>
        /// Variable que establece la persona de 
        /// </summary>
        private PersonaDTO tokenUsuario = null;

        private bool EdicionPerfil = false;

        #endregion

        #region Propiedades



        #endregion

        #region Eventos de pagina

        protected void Page_Load(object sender, EventArgs e)
        {

            if (Session["EdicionPerfil"] != null)
            {
                EdicionPerfil = (bool)Session["EdicionPerfil"];
                if (EdicionPerfil)
                {
                    tokenUsuario = (PersonaDTO)Session["tokenUsuario"];
                    CargaDatosUsuario();
                }
            }
        }

        #endregion

        #region Eventos de boton

        /// <summary>
        /// Evento asociado al boton de enviar. Contiene toda la logica de validacion
        /// </summary>
        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            osdSeguridad obj = osdSeguridad.GetInstance();

            if (this.Page.IsValid)
            {
                try
                {
                    tokenUsuario = DatosPersona.getPersona();
                    GenericaView actualiza = GenericaView.GetInstance();

                    BindingToDS();

                    if (actualiza.Inserta(tokenUsuario))
                    {
                        Response.Redirect("~/SubPages/PaginasConfirmacion/RegistroOK.aspx");
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.ToString());
                }
            }
            else
            {
                Response.Write("<script>alert('Compruebe los datos introducidos')</script>");
            }

        }

        #endregion

        #region Metodos privados

        /// <summary>
        /// Rellena el objeto dto con todos los datos del formulario
        /// </summary>
        private void BindingToDS()
        {
            //TODO: Aqui cargamos los valores de los usuarios 
            tokenUsuario = DatosPersona.getPersona();
        }


        /// <summary>
        /// Funcion que comprueba si el usuario con ese DNI
        /// está dado de alta en la universidad
        /// </summary>
        /// <param name="dni">DNI del usuario</param>
        /// <returns>Valor que determina si esta dado de alta o no</returns>
        private bool CompruebaAlumno(string dni)
        {
            bool valido = false;
            osdSeguridad seg = osdSeguridad.GetInstance();
            if (seg.CompruebaDni(dni))
            {
                valido = true;
            }
            return valido;
        }

        /// <summary>
        /// Carga los datos del usuario dentro de
        /// </summary>
        private void CargaDatosUsuario()
        {

        }

        #endregion
    }
}
